<?php

class alipay{
	public function index(){
		require_once './alipay/aop/AopClient.php';
		require_once './alipay/aop/request/AlipayTradeAppPayRequest.php';
		$aop = new \AopClient;
		//p($aop);die;
		$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
		$aop->appId = C('ALIPAY.appid');
		$aop->rsaPrivateKey = C('ALIPAY.privatekey');
		$aop->format = "json";
		$aop->charset = "UTF-8";
		$aop->signType = "RSA2";
		$aop->alipayrsaPublicKey = C('ALIPAY.publickey');
		
		/// 异步通知地址
        $notify_url = "https://www.xxx.com/alipay/nofiy_url";
        // 订单标题
        $subject = '测试支付';
        // 订单详情
        $body = '测试支付-可使用调查问卷，团队管理，数据分析';
        // 价格
        $total = 0.01;
        // 订单号，示例代码使用时间值作为唯一的订单ID号
        $out_trade_no = date('YmdHis', time());
		
		//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称：alipay.trade.app.pay
		$request = new \AlipayTradeAppPayRequest();
		//SDK已经封装掉了公共参数，这里只需要传入业务参数
		$bizcontent = "{\"body\":\"".$body."\","
            . "\"subject\": \"".$subject."\","
            . "\"out_trade_no\": \"".$out_trade_no."\","
            . "\"timeout_express\": \"30m\","
            . "\"total_amount\": \"".$total."\","
            . "\"product_code\":\"QUICK_MSECURITY_PAY\""
            . "}";
		$request->setNotifyUrl($notify_url);
        $request->setBizContent($bizcontent);
		//这里和普通的接口调用不同，使用的是sdkExecute
		$response = $aop->sdkExecute($request);
		//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义，实际打印到日志以及http传输不会有这个问题
		echo $response;//就是orderString 可以直接给客户端请求，无需再做处理。
	}
	
	//异步通知
	public function nofiy_url(){
		echo 1;
	}	
}
	